import os


def split_file(input_file, output_prefix, num_files=5):
    # 读取原始文件的所有行
    with open(input_file, 'r', encoding='utf-8') as f:
        lines = f.readlines()

    total_lines = len(lines)
    lines_per_file = total_lines // num_files

    # 确保输出目录存在
    output_dir = os.path.dirname(output_prefix)
    if output_dir and not os.path.exists(output_dir):
        os.makedirs(output_dir)

    # 写入分割后的文件
    for i in range(num_files):
        start = i * lines_per_file
        # 如果是最后一个文件，包含剩余的所有行
        end = (i + 1) * lines_per_file if i != num_files - 1 else total_lines

        output_file = f"{output_prefix}_{i + 1}.txt"
        with open(output_file, 'w', encoding='utf-8') as f:
            f.writelines(lines[start:end])

        print(f"已创建文件: {output_file} (包含 {end - start} 行)")


# 使用示例
if __name__ == "__main__":
    input_file = "/home/wc/disk1/DocTamper/DTV1-Training.txt"  # 替换为你的大文件路径
    output_prefix = "DTV1-Training_split"  # 输出文件前缀（会自动创建目录）

    split_file(input_file, output_prefix, num_files=5)